// pages/education/index.js
import AI from '../../utils/ai';
import DB from '../../utils/db';

Page({

  /**
   * 页面的初始数据
   */
  data: {
    mode: '',
    // dateVisible: false,
    entry: '2018-01', // 支持时间戳传入
    resign: '2018-01', // 支持时间戳传入
    // 指定选择区间起始值
    start: '1950-01-01 00:00:00',
    end: '2030-09-09 12:12:12',
    confirmBtn: { content: '确定', variant: 'base' },
    dialogKey: '',
    showConfirm: false,
    showWarnConfirm: false,
    showLightConfirm: false,
    form: {
      projectText: '',
      roleText: '',
      entryText:'',
      resignText:'',
      projectContent:''
    },
  },

  showDialog(e) {
    const { key } = e.currentTarget.dataset;
    this.setData({ [key]: true, dialogKey: key });
  },

  closeDialog() {
    const { dialogKey } = this.data;
    this.setData({ [dialogKey]: false });
    console.log("确认删除")
  },

  onProjectTextInput(e){
    this.setData({
      'form.projectText': e.detail.value
    })
  },

  onRoleTextInput(e){
    this.setData({
      'form.roleText': e.detail.value
    })
  },

  onProjectContentInput(e){
    this.setData({
      'form.projectContent': e.detail.value
    })
  },

  onVisibleChange(e) {
    this.setData({
      visible: e.detail.visible,
    });
  },
  onVisible(e) {
    this.setData({
      visible: false,
    });
  },
  onCopy(e){
    wx.showToast({
      title: '替换成功',
      icon: 'success'
    })
    this.setData({
      visible: false,
      'form.projectContent': this.data.text,
    });
  },

  onAi(){
    wx.showLoading({
      title: 'AI优化中\n预计2-4分钟', // 这里设置提示词
      mask: true // 显示透明蒙层
    });
    let userInput = `帮我生成一篇通用项目经历`
    if(this.data.form.projectContent !== ""){
      userInput = this.data.form.projectContent
    }else if(this.data.form.projectText !== ""){
      userInput = `帮我生成一篇${this.data.form.projectText}项目经历`
    }
    // console.log(temp)
    // Ai(temp).then(
    //   value => this.setData({
    //       text: value.replace(/^[\s]+/, ""),
    //       visible:true
    //     })
    // )
    const systemPrompt =`# 角色  
      你是一个专业的项目经理，能够准确地将用户输入的内容转换成项目记录，不进行随意扩写。 
      ## 技能
      1. 当用户给出一段文本时，快速依据 STAR 格式对其进行编写。其中，S（Situation）为项目背景情况，T（Task）为项目任务目标，A（Action）为采取的行动措施，R（Result）为最终达成的成果。
      2. 保证编写内容准确、语句流畅。
      ## 输出格式：
      项目描述：概况项目背景、目标和成功。突出项目的价值和意义
      项目职责：动宾短语，描述承担的具体职责和任务，突出核心技能和贡献
      项目成果：量化成果，使用数据和事实说话
      ## 限制： 
      - 仅开展项目优化相关工作，拒绝回答与项目内容无关的问题。
      - 严格依照用户要求的内容编写，不得随意更改。
      - 输出文本型格式不使用markdown格式 `
    
    AI.hunyuan("hunyuan-t1-latest",systemPrompt,userInput).then(result => {
      // console.log("AI生成的结果:", result);
      wx.hideLoading();
      this.setData({
        text: result.replace(/^[\s]+/, ""),
        visible:true
      })
    })
      .catch(error => {
        wx.hideLoading();
        wx.showToast({
          title: '调用AI失败',
          icon: 'error'
        })
    });
  
  },


  showPicker(e) {
    const { mode } = e.currentTarget.dataset;
    this.setData({
      mode,
      [`${mode}Visible`]: true,
    });
  },

  hidePicker() {
    const { mode } = this.data;
    this.setData({
      [`${mode}Visible`]: false,
    });
  },
  onConfirm(e) {
    const { value } = e.detail;
    const { mode } = this.data;

    console.log('confirm', value);

    this.setData({
      [mode]: value,
      [`form.${mode}Text`]: value,
    });

    this.hidePicker();
  },

  onColumnChange(e) {
    console.log('pick', e.detail.value);
  },

  updateProject(){
    wx.showLoading({
      title: '',
    });
    DB.update('updateProject', this.data.form).then(() => {
      wx.hideLoading();
      wx.reLaunch({
        url: `/pages/createResume/index`,
      });
    }).catch(() => {
      wx.hideLoading();
      wx.showToast({
        title: '更新失败',
        icon: 'error',
        duration: 2000
      });
    });
  },

  addProject(){
    this.data.form.openId = this.data.openId
    wx.showLoading({
      title: '',
    });
    DB.add('addProject', this.data.form).then(() => {
      wx.hideLoading();
      wx.reLaunch({
        url: `/pages/createResume/index`,
      });
    }).catch(() => {
      wx.hideLoading();
      wx.showToast({
        title: '添加失败',
        icon: 'error',
        duration: 2000
      });
    });
  },

  selectProject(id) {
    DB.select('selectProject', id).then((resp) => {
      
      this.setData({
        form: resp.result.data,
        count: 1
      });
      wx.hideLoading();
    }).catch(() => {
      console.log(e);
      this.setData({
        showUploadTip: true
      });
      wx.hideLoading();
    });
  },

  deleteProject(){
    wx.showLoading({
      title: '',
    });
    DB.delete('deleteProject', this.data.form).then(() => {
      wx.hideLoading();
      wx.reLaunch({
        url: `/pages/createResume/index`,
      });
    }).catch(() => {
      wx.hideLoading();
      wx.showToast({
        title: '删除失败',
        icon: 'error',
        duration: 2000
      });
    });
  },

  handleChange(e) {
    if(e.detail.value){
      this.setData({
        'form.resignText': '至今',
      });
    }
    this.setData({
      defaultVal: e.detail.value,
    });
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      openId: wx.getStorageSync("openId")
    })
    if(options.id != 'undefined'){
      wx.showLoading({
        title: '数据加载中...', // 这里设置提示词
        mask: true // 显示透明蒙层
      });
      this.selectProject(options.id)
    }
    // console.log(this.data.form)
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  // onShareAppMessage() {

  // }
})